The present invention relates to a programmable optical pointing device.
Typically, an optical pointing device has a photo sensor array, a micro-controller unit (MCU), and a memory. The photo sensor array captures images on an operating surface. The MCU determines displacement of the device according to the captured images. The memory stores a control code for the MCU. The three electronic units, the photo sensor array, the MCU, and the memory, are typically integrated on a single chip to save costs. When integrating the three units, the memory must be a static random access memory (SRAM) or a mask read-only memory (mask ROM) due to compatibility requirements in fabrication. The control code stored in the SRAM disappears after the SRAM is powered-off, thus a single chip with a SRAM thereon is not suitable for the optical device. The control code must remain after power-off. Therefore, the optical device typically uses a mask ROM on the single chip to store the code. The control code is written to the mask ROM by mask technology during fabrication.
However, in the design stage, the control code is not finalized and may be modified several times in response to development. If the mask ROM is used as the memory on the single chip to store the control code, the mask ROM must be re-produced by mask technology each time the code is modified.
Alternatively, several chips may be used in the optical pointing device to fulfill the same function. FIG. 1a is a diagram of a conventional optical mouse 10. FIG. 1b shows a photo sensor array 11 and a micro-controller unit (MCU) 12 inside the conventional optical mouse 10 in FIG. 1a. The MCU 12 comprises a memory 13 storing a control code. The memory 13 can be a flash memory or a one time programmable (OTP) memory. In the design stage, new or modified control codes are written to the memory 13 in the MCU 12. During operation, the MCU 12 reads out the control code from the memory 13 and drives the photo sensor array 11 to detect images on an operating surface according to the control code. Then, the MCU 12 calculates correlation between the images captured at different points of time to determine displacement of the optical mouse 10.
The optical mouse uses several chips in the design stage, replaced by a single chip in production stage for cost consideration. Patterns for the printed circuit board (PCB) must be modified from the design stage to production stage. Although the control code is verified in the design stage using several chips, uncertainty still exists when the control code is written to the single chip, creating potential risk and higher costs.